Interactive Connectivity Establishment
   HOME

TheInfoList



OR:

Interactive Connectivity Establishment (ICE) is a technique used in
computer networking A computer network is a set of computers sharing resources located on or provided by network nodes. The computers use common communication protocols over digital interconnections to communicate with each other. These interconnections are ma ...
to find ways for two computers to talk to each other as directly as possible in
peer-to-peer Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network. They are said to form a peer-to-peer n ...
networking. This is most commonly used for interactive media such as
Voice over Internet Protocol Voice over Internet Protocol (VoIP), also called IP telephony, is a method and group of technologies for the delivery of voice communications and multimedia sessions over Internet Protocol (IP) networks, such as the Internet. The terms Internet t ...
(VoIP),
peer-to-peer Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network. They are said to form a peer-to-peer n ...
communications, video, and
instant messaging Instant messaging (IM) technology is a type of online chat allowing real-time text transmission over the Internet or another computer network. Messages are typically transmitted between two or more parties, when each user inputs text and trigge ...
. In such applications, communicating through a central server would be slow and expensive, but direct communication between client applications on the
Internet The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
is very tricky due to network address translators (NATs), firewalls, and other network barriers. ICE is developed by the
Internet Engineering Task Force The Internet Engineering Task Force (IETF) is a standards organization for the Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and a ...
MMUSIC working group and is published as RFC 8445, as of August 2018, and has obsolesced both RFC 5245 and RFC 4091.RFC 4091, ''The Alternative Network Address Types (ANAT) Semantics for the Session Description Protocol (SDP) Grouping Framework'', G. Camarillo, J. Rosenberg (June 2005)


Overview

Network address translation (NAT) became an effective technique in delaying the
exhaustion Fatigue describes a state of tiredness that does not resolve with rest or sleep. In general usage, fatigue is synonymous with extreme tiredness or exhaustion that normally follows prolonged physical or mental activity. When it does not resolve ...
of the available address pool of
Internet Protocol version 4 Internet Protocol version 4 (IPv4) is the fourth version of the Internet Protocol (IP). It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. IPv4 was the first version de ...
, which is inherently limited to around four billion unique addresses. NAT gateways track outbound requests from a
private network In Internet networking, a private network is a computer network that uses a private address space of IP addresses. These addresses are commonly used for local area networks (LANs) in residential, office, and enterprise environments. Both the IPv4 ...
and maintain the state of each established connection to later direct responses from the peer on the public network to the peer in the private network, which would otherwise not be directly addressable. VoIP, peer-to-peer, and many other applications require address information of communicating peers within the data streams of the connection, rather than only in the Internet Protocol packet headers. For example, the
Session Initiation Protocol The Session Initiation Protocol (SIP) is a signaling protocol used for initiating, maintaining, and terminating communication sessions that include voice, video and messaging applications. SIP is used in Internet telephony, in private IP telepho ...
(SIP) communicates the
IP address An Internet Protocol address (IP address) is a numerical label such as that is connected to a computer network that uses the Internet Protocol for communication.. Updated by . An IP address serves two main functions: network interface ident ...
of network clients for registration with a location service, so that telephone calls may be routed to registered clients. ICE provides a framework with which a communicating peer may discover and communicate its public IP address so that it can be reached by other peers.
Session Traversal Utilities for NAT STUN (Session Traversal Utilities for NAT; originally Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators) is a standardized set of methods, including a network protocol, for traversal of network address transl ...
(STUN) is a standardized protocol for such address discovery including NAT classification.
Traversal Using Relays around NAT Traversal Using Relays around NAT (TURN) is a Communications protocol, protocol that assists in traversal of network address translators (NAT) or Firewall (networking), firewalls for multimedia applications. It may be used with the Transmission Co ...
(TURN) places a third-party server to relay messages between two clients when direct media traffic between peers is not allowed by a firewall.


IETF specifications


RFC 5389
Session Traversal Utilities for NAT (STUN).
RFC 8656
Traversal Using Relays around NAT (TURN): Relay Extensions to STUN.
RFC 6544
TCP Candidates with Interactive Connectivity Establishment (ICE)
RFC 8445
Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal


See also

*
Realm-Specific IP Realm-Specific IP was an experimental IETF framework and protocol intended as an alternative to network address translation (NAT) in which the end-to-end integrity of packets is maintained. RSIP lets a host borrow one or more IP addresses (and U ...
(RSIP) *
Middlebox A middlebox is a computer networking device that transforms, inspects, filters, and manipulates traffic for purposes other than packet forwarding. Examples of middleboxes include firewalls, network address translators (NATs), load balancers, and ...
(Middlebox Communications or MIDCOM) *
Universal Plug and Play Universal Plug and Play (UPnP) is a set of networking protocols that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence on the n ...
(UPnP) *
NAT Port Mapping Protocol NAT Port Mapping Protocol (NAT-PMP) is a network protocol for establishing network address translation (NAT) settings and port forwarding configurations automatically without user effort. The protocol automatically determines the external IPv4 a ...
(NAT-PMP) *
Port Control Protocol Port Control Protocol (PCP) is a computer networking protocol that allows hosts on IPv4 or IPv6 networks to control how the incoming IPv4 or IPv6 packets are translated and forwarded by an upstream router that performs network address translat ...
(PCP) *
WebRTC WebRTC (Web Real-Time Communication) is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication to wor ...


References

{{Reflist


External links


IETF Journal article on ICE

MMUSIC working group

BEHAVE working group



libnice: GLib ICE library

libjuice: Open source UDP ICE library

coturn: Open source implementation of TURN and STUN Server
Networking standards